﻿#pragma once

#define FAIL_RET(cond) if(!(cond)) return false;
#define FAIL_RET_X(cond,x) if(!(cond)) return x;
#define FAIL_RET_VOID(cond) if(!(cond)) return;
#define FAIL_BREAK(cond) if(!(cond)) break;
#define FAIL_CONTINUE(cond) if(!(cond)) continue;

#define ASSERT_MSG_RET(cond,msg)  if(!(cond)){ assert(false && msg); return false; }
#define ASSERT_MSG_RET_X(cond,msg,x) if(!(cond)){ assert(false && msg); return x; }
#define ASSERT_MSG_RET_VOID(cond,msg) if(!(cond)){ assert(false && msg); return; }

#define ARRAY_LEN(vec) sizeof(vec)/sizeof(vec[0])
